/** ------------------------------------------------------------------------
    File        : WorkStepTemplateTypeEnum
    Purpose     : Enumeration of WorkStepTemplate types
    Syntax      : 
    Description : 
    @author pjudge
    Created     : Wed Nov 24 13:34:42 EST 2010
    Notes       : * As per Savvion documentation
  ---------------------------------------------------------------------- */
routine-level on error undo, throw.

using OpenEdge.Lang.BPM.WorkStepTemplateTypeEnum.
using OpenEdge.Lang.EnumMember.


class OpenEdge.Lang.BPM.WorkStepTemplateTypeEnum inherits EnumMember:
    
    define static public property Start as WorkStepTemplateTypeEnum no-undo get. private set.
    define static public property End as WorkStepTemplateTypeEnum no-undo get. private set.
    define static public property OrJoin as WorkStepTemplateTypeEnum no-undo get. private set.
    define static public property AndJoin as WorkStepTemplateTypeEnum no-undo get. private set.
    define static public property ParallelSplit as WorkStepTemplateTypeEnum no-undo get. private set.
    define static public property DecisionSplit as WorkStepTemplateTypeEnum no-undo get. private set.
    define static public property Atomic as WorkStepTemplateTypeEnum no-undo get. private set.
    define static public property External as WorkStepTemplateTypeEnum no-undo get. private set.
    define static public property WebService as WorkStepTemplateTypeEnum no-undo get. private set.
    define static public property MessageDriven as WorkStepTemplateTypeEnum no-undo get. private set.
    define static public property Notification as WorkStepTemplateTypeEnum no-undo get. private set.
    define static public property Nested as WorkStepTemplateTypeEnum no-undo get. private set.
    define static public property Delay as WorkStepTemplateTypeEnum no-undo get. private set.
        
    constructor static WorkStepTemplateTypeEnum():
        WorkStepTemplateTypeEnum:Start = new WorkStepTemplateTypeEnum('START').
        WorkStepTemplateTypeEnum:End = new WorkStepTemplateTypeEnum('END').
        WorkStepTemplateTypeEnum:OrJoin = new WorkStepTemplateTypeEnum('OR-JOIN').
        WorkStepTemplateTypeEnum:AndJoin = new WorkStepTemplateTypeEnum('AND-JOIN').
        WorkStepTemplateTypeEnum:ParallelSplit = new WorkStepTemplateTypeEnum('PARALLEL-SPLIT').
        WorkStepTemplateTypeEnum:DecisionSplit = new WorkStepTemplateTypeEnum('DECISION-SPLIT').
        WorkStepTemplateTypeEnum:Atomic = new WorkStepTemplateTypeEnum('ATOMIC').
        WorkStepTemplateTypeEnum:External = new WorkStepTemplateTypeEnum('EXTERNAL').
        WorkStepTemplateTypeEnum:WebService = new WorkStepTemplateTypeEnum('WEBSERVICE').
        WorkStepTemplateTypeEnum:MessageDriven = new WorkStepTemplateTypeEnum('MESSAGEDRIVEN').
        WorkStepTemplateTypeEnum:Notification = new WorkStepTemplateTypeEnum('NOTIFICATION').
        WorkStepTemplateTypeEnum:Nested = new WorkStepTemplateTypeEnum('NESTED').
        WorkStepTemplateTypeEnum:Delay = new WorkStepTemplateTypeEnum('DELAY').
    end constructor.        
        
    constructor public WorkStepTemplateTypeEnum ( input pcName as character ):
        super (input pcName).
    end constructor.
    
    method static public WorkStepTemplateTypeEnum EnumFromString(input pcName as character):
        define variable oEnum as WorkStepTemplateTypeEnum no-undo.
        
        case pcName:
            when WorkStepTemplateTypeEnum:Start:ToString() then oEnum = WorkStepTemplateTypeEnum:Start.
            when WorkStepTemplateTypeEnum:End:ToString() then oEnum = WorkStepTemplateTypeEnum:End.
            when WorkStepTemplateTypeEnum:OrJoin:ToString() then oEnum = WorkStepTemplateTypeEnum:OrJoin.
            when WorkStepTemplateTypeEnum:AndJoin:ToString() then oEnum = WorkStepTemplateTypeEnum:AndJoin.
            when WorkStepTemplateTypeEnum:ParallelSplit:ToString() then oEnum = WorkStepTemplateTypeEnum:ParallelSplit.
            when WorkStepTemplateTypeEnum:DecisionSplit:ToString() then oEnum = WorkStepTemplateTypeEnum:DecisionSplit.
            when WorkStepTemplateTypeEnum:Atomic:ToString() then oEnum = WorkStepTemplateTypeEnum:Atomic.
            when WorkStepTemplateTypeEnum:External:ToString() then oEnum = WorkStepTemplateTypeEnum:External.
            when WorkStepTemplateTypeEnum:WebService:ToString() then oEnum = WorkStepTemplateTypeEnum:WebService.
            when WorkStepTemplateTypeEnum:MessageDriven:ToString() then oEnum = WorkStepTemplateTypeEnum:MessageDriven.
            when WorkStepTemplateTypeEnum:Notification:ToString() then oEnum = WorkStepTemplateTypeEnum:Notification.
            when WorkStepTemplateTypeEnum:Nested:ToString() then oEnum = WorkStepTemplateTypeEnum:Nested.
            when WorkStepTemplateTypeEnum:Delay:ToString() then oEnum = WorkStepTemplateTypeEnum:Delay.
        end case.
        return oEnum.
    end method.
    
end class.